package nocturnos.domain;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

public class Grupos implements Comparable<Grupos>{

	private Integer idGrupo;
	private List<Persona> ocupantes;
	private Persona conductor;
	private Integer horaLlegada;
	private Integer horasalida;
	
	
	public Grupos(Integer idGrupo,List<Persona> ocupantes, Persona conductor, Integer horaLlegada, Integer horasallida){
		this.idGrupo=idGrupo;
				
		this.conductor=conductor;
		conductor.setConductor(true);
				
		this.ocupantes=ocupantes;
		ocupantesNoConducen(ocupantes);
		
		this.horaLlegada=horaLlegada;
		this.horasalida=horasallida;
		
		
	}
	
	public Integer getIdGrupo() {
		return idGrupo;
	}
	
	
	public void setIdGrupo(Integer idGrupo) {
		this.idGrupo = idGrupo;
	}
	public List<Persona> getOcupantes() {
		return ocupantes;
	}
	public void setOcupantes(List<Persona> ocupantes) {
		this.ocupantes = ocupantes;
		ocupantesNoConducen(ocupantes);
		
	}
	
	private void ocupantesNoConducen(List<Persona> ocupantes){
				
		Iterator<Persona> it = ocupantes.iterator();
		while (it.hasNext()){
			Persona cpersona = it.next();
			if (!cpersona.getIdPersona().equals(conductor.getIdPersona())){
				cpersona.setConductor(false);
				
			}else if (cpersona.getIdPersona().equals(conductor.getIdPersona())){
				//it.next().setConductor(true);
				cpersona.setConductor(true);
			}
			
		}
		
		
		
	}
	public Persona getConductor() {
		return conductor;
	}
	public void setConductor(Persona conductor) {
		this.conductor = conductor;
	}
	public Integer getHoraLlegada() {
		return horaLlegada;
	}
	public void setHoraLlegada(Integer horaLlegada) {
		this.horaLlegada = horaLlegada;
	}
	public Integer getHorasalida() {
		return horasalida;
	}
	public void setHorasalida(Integer horasalida) {
		this.horasalida = horasalida;
	}
	
	
	public String toString(){
		
		String salida = "ID Grupo: "+ getIdGrupo()+", Conductor: "+getConductor().toString()+" \nLlegada: "+getHoraLlegada()+" Salida: "+getHorasalida()+" \n Ocupantes \n"+getOcupantes().toString()+" \n";
		
		return salida;
	}

	@Override
	public int compareTo(Grupos o) {
		return this.getIdGrupo().compareTo(o.getIdGrupo());
		
	}
	
}
